package com.ruoyi.system.controller;


import com.alibaba.fastjson.JSONObject;

import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

@RestController
public class AuthController {
//    private final UserFegin userFegin;
//    private final HttpServletRequest request;
//    private final StringRedisTemplate redisTemplate;
//
//    public AuthController(UserFegin userFegin, HttpServletRequest request, StringRedisTemplate redisTemplate) {
//        this.userFegin = userFegin;
//        this.request = request;
//        this.redisTemplate = redisTemplate;
//    }
//
//    //登录
//    @PostMapping("/login")
//    public Result<JwtResponse> login(@RequestBody Tel tel){
//        if (StringUtils.isEmpty(tel.getTel()) || StringUtils.isEmpty(tel.getCode())){
//           return Result.error("手机号或者验证码不可以为空");
//        }
//        Result<User> feginName = userFegin.findName(tel.getTel());
//        if (feginName.getCode()==Result.FAIL){
//            return Result.error("手机号或者验证码错误");
//        }
//        String code = redisTemplate.opsForValue().get(tel.getTel());
//        if (!code.equals(tel.getCode())){
//            return Result.error("验证码错误");
//        }
//        User data = feginName.getData();
//        //生成jwtmap
//        Map<String, Object> jwtmap = new HashMap<>();
//        String userkey = UUID.randomUUID().toString().replaceAll("-", "");
//        jwtmap.put(JwtUtils.USER_KEY,userkey);
//        jwtmap.put(JwtUtils.DETAILS_USER_ID,data.getId());
//        String token = JwtUtils.createToken(jwtmap);
//        //存入redis
//        ValueOperations<String, String> ops = redisTemplate.opsForValue();
//        ops.set(JwtUtils.LOGIN_TOKEN_KEY+userkey, JSONObject.toJSONString(data));
//        //登录成功
//        JwtResponse jwtResponse = new JwtResponse();
//        jwtResponse.setToken(token);
//        jwtResponse.setExpiration("10min");
//        Result<JwtResponse> result = Result.success(jwtResponse);
//        return result;
//    }
//
//    @GetMapping("/user/info")
//    public Result<User> userInfo(){
//        String token = request.getHeader(JwtUtils.TOKEN);
//        String userKey = JwtUtils.getUserKey(token);
//        ValueOperations<String, String> ops = redisTemplate.opsForValue();
//        String s = ops.get(JwtUtils.LOGIN_TOKEN_KEY + userKey);
//        User user = JSONObject.parseObject(s, User.class);
//        Result<User> result = Result.success(user);
//        return result;
//    }
}
